# 文件操作  打开文件 读/写文件 关闭文件
# f = open('d:/test.txt', 'r')  # 使用open打开文件， r 表示按照读方式打开. w 表示按照写方式打开. a表示追加写方式打开.
# print(f)
# f.close() # 关闭文件，一定要关闭

f = open('d:/test.txt', 'w')  # 写文件
f.write('hello')
f.close()

f = open('d:/test.txt', 'w')  # 使用 'w' 一旦打开文件成功, 就会清空文件原有的数据.
                              # 使用 'a' 实现 "追加写", 此时原有内容不变, 写入的内容会存在于之前文件内容的末尾
f.write('hello\n')
f.close()
f = open('d:/test.txt', 'a')
f.write('world')
f.close()

# 针对已经关闭的文件对象进行写操作, 也会抛出异常.
f = open('d:/test.txt', 'w')
f.write('hello')
f.close()
f.write('world')

# 读文件
f = open('d:/test.txt', 'r',encoding='utf8')
result = f.read(2)  # 读两个字符
print(result)
f.close()

# 按行来读取
f = open('d:/test.txt', 'r',encoding='utf8')
for line in f:
    print(f'line={line}')
f.close()

# 使用 readlines 直接把文件整个内容读取出来, 返回一个列表. 每个元素即为一行.
f = open('d:/test.txt', 'r')
lines = f.readlines()
print(lines)
f.close()
